import qrcode
from PIL import Image, ImageFilter


def generate_qrcode():
    # 生成二维码
    qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4)
    qr.add_data("https://www.baidu.com")
    qr.make(fit=True)
    qr_img = qr.make_image(fill_color="green", back_color="white").convert("RGBA")

    # 打开猫图像
    cat_img = Image.open("file/picture/cat1.jpg")

    # 高质量缩放
    new_size = (100, 100)  # 调整为目标大小
    cat_img = cat_img.resize(new_size, Image.LANCZOS)

    # 锐化猫图像
    cat_img = cat_img.filter(ImageFilter.SHARPEN)

    # 调整透明度
    cat_img = cat_img.convert("RGBA")
    cat_img = cat_img.point(lambda p: p * 1.0 if p > 0 else 0)  # 将透明度设置为 100%

    # 将猫图像叠加到二维码中心
    qr_width, qr_height = qr_img.size
    cat_width, cat_height = cat_img.size
    position = ((qr_width - cat_width) // 2, (qr_height - cat_height) // 2)
    qr_img.paste(cat_img, position)

    # 保存高质量图像
    qr_img.save("file/generate_qrcode/qrcode_with_cat.png", quality=95)

    # 显示结果
    ## qr_img.show()